草庐IT

ios - NSNotification 与 dispatch_get_main_queue

全部标签

c# - 如何在 Main() 方法之前在 C# 中运行静态初始化方法?

给定一个带有初始化方法的静态类:publicstaticclassFoo{//Classmembers...internalstaticinit(){//Dosomeinitialization...}}如何确保初始化程序在Main()之前运行?我能想到的最好的办法是将它添加到Foo:privateclassInitializer{privatestaticboolisDone=false;publicInitializer(){if(!isDone){init();isDone=true;}}}privatestaticreadonlyInitializerinitializer=n

c# - Queue 上的 IEnumerable 迭代器是否应该使项目出列

我创建了一个实现通用IQueue接口(interface)的自定义通用队列,该接口(interface)使用System.Collections.Generic命名空间中的通用队列作为私有(private)内部队列。示例已清除不相关的代码。publicinterfaceIQueue{voidEnqueue(TQueueItemqueueItem);TQueueItemDequeue();}publicclassCustomQueue:IQueue{privatereadonlyQueuequeue=newQueue();...publicvoidEnqueue(TQueueItemqu

c# - IO monad 在像 C# 这样的语言中有意义吗

在花了很多时间阅读和思考之后,我想我终于掌握了monad是什么、它们如何工作以及它们有什么用处。我的主要目标是弄清楚monad是否可以应用于我在C#中的日常工作。当我开始学习monad时,我的印象是它们很神奇,它们以某种方式使IO和其他非纯函数变得纯。我理解monad对于.Net中的LINQ之类的东西的重要性,并且Maybe对于处理不返回有效值的函数非常有用。我也很欣赏限制代码状态和​​隔离外部依赖的需要,我希望monad也能帮助解决这些问题。但我最终得出结论,用于IO和处理状态的monad是Haskell的必需品,因为Haskell没有其他方法可以做到这一点(否则,你无法保证顺序,并

c# - 如何为数组数据成员定义 get 和 set?

我正在创建一个类Customer,它具有以下数据成员和属性:privatestringcustomerName;privatedouble[]totalPurchasesLastThreeDays;//arrayof3elementsthatwillholdthetotalsofhowmuchthecustomerpurchasedforthepastthreedaysi.e.element[0]=100,element[1]=50,element[2]=250publicstringCustomerName{get{returncustomerName;}set{customerNa

c# - System.StackOverflowException ,何时使用 get set 属性?

在wcfserviceLibrary.DLL中发生类型为“System.StackOverflowException”的未处理异常代码如下。[DataContract]publicclassmemberdesignations{[DataMember]publicstringDesigId{get{returnDesigId;}set{DesigId=value;}}[DataMember]publicstringDesignationName{get{returnDesignationName;}set{DesignationName=value;}}}然后我有如下的Typememb

c# - 我向我的项目添加了一个新类,并收到一条错误消息 "Program.Main() has more than one entry"。为什么?

问题是在我添加新类之后,当我构建解决方案时出现错误。有什么问题吗?在Form1中,我还没有任何代码。我刚刚添加了一个新类:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingOpenHardwareMonitor.Hardware;namespaceOpenHardwareMonitorReport{classProgram{staticvoidMain(string[]args){Computercomputer=newComputer();computer.Open()

c# - 将 set 访问器添加到类中的属性,该类派生自只有一个 get 访问器的抽象类

我有一个抽象类,AbsClass实现一个接口(interface),IClass.IClass有几个属性只有Get访问器。AbsClass实现的属性IClass作为要在派生自的类中定义的抽象属性AbsClass.所以所有派生自的类AbsClass还需要满足IClass通过与Get访问器具有相同的属性。但是,在某些情况下,我希望能够向来自的属性添加set访问器。IClass.然而,如果我尝试覆盖中的抽象属性AbsClass使用setaccessor我收到此错误ConcClassA.Bottom.Set无法覆盖,因为AbsClass.Bottom没有可覆盖的set访问器见ConcClass

c# - 执行文件io时如何正确处理异常

我经常发现自己以某种方式与文件交互,但在编写代码后,我总是不确定它实际上有多健壮。问题是我不完全确定文件相关操作会如何失败,因此也不确定处理异常的最佳方式。简单的解决方案似乎只是捕获代码抛出的任何IOExceptions并向用户提供“无法访问的文件”错误消息,但是否有可能获得更细粒度的错误信息?有没有办法确定文件被另一个程序锁定等错误与由于硬件错误导致数据不可读之间的区别?给定以下C#代码,您将如何以用户友好(尽可能提供信息)的方式处理错误?publicclassIO{publicListReadFile(stringpath){FileInfofile=newFileInfo(pat

c# - ConcurrentQueue 与 Queue + 锁的性能对比

我必须实现一消费者一生产者标准算法。我可以使用Queue和几个lock语句轻松实现它。或者我可以只使用ConcurrentQueue。什么更好?如果使用Queue+lock那么我可以优化“多次添加/检索”,因为我可以lock一次然后Add很多次。一般情况下哪个更快-ConcurrentQueue或Queue+lock有多大区别?当然ConcurrentQueue是最直接的方式,但我不想在HFT交易应用程序中使用它时失去很多性能。 最佳答案 来自C#inaNutshell:Theconcurrentstack,queue,andbag

c# - 如何在非 UI 代码 Windows Phone 8 中获取 Dispatcher

我可以在Windows8中获取CoreDispatcher对象CoreDispatcherdispatcher=Windows.UI.Core.CoreWindow.GetForCurrentThread().Dispatcher;但是我怎样才能在windowsphone8中得到Dispatcher这样我就可以打电话了Dispatcher.BeginInvoke(delegate{//Mystatements}); 最佳答案 使用Deployment.Current.Dispatcher获取WindowsPhone中的Dispatc